#include "Tokenizer.h"

/* @resume:construtor */
Tokenizer::Tokenizer() {
}

/*
 * @resume:construtor
 * @param: string conteudo, tipoToken tipo, int linha, string comentario
 */
Tokenizer::Tokenizer(string conteudo, tipoToken tipo, int linha,
		string comentario) {
	this->conteudoToken = conteudo;
	this->linhaToken = linha;
	this->tipo = tipo;
	this->comentarioToken = comentario;
}

/* @resume:destrutor */
Tokenizer::~Tokenizer() {
}

/*
 * @resume:pegar o numero da linha do token
 * @return: numero da linha
 */
int Tokenizer::getLinha() {
	return (this->linhaToken);
}

/*
 * @resume:pegar o conteudo do token do token
 * @return: string do token
 */
string Tokenizer::getConteudo() {
	return (this->conteudoToken);
}

/*
 * @resume:pegar o comentario do token
 * @return: string do comentario do token
 */
string Tokenizer::getComentario() {
	return (this->comentarioToken);
}

/*
 * @resume:transformar o tipo do token em string
 * @return: string do tipo do token
 */
string Tokenizer::tipoToString() {
	switch (this->tipo) {
	case INTEIRO:
		return ("Inteiro");
		break;
	case IDENTIFICADOR:
		return ("Identificador");
		break;
	case BOOLEANO:
		return ("Booleano");
		break;
	case RESERVADA:
		return ("Palavra Reservada");
		break;
	case SIMBOLO_ESPECIAL:
		return ("Simbolo Especial");
		break;
	case SIMBOLO_COMPOSTO:
		return ("Simbolo Composto");
		break;
	case ERRO:
		return ("Erro");
		break;
	}
	return "";
}

/*
 * @resume:pegar o tipo do token
 * @return: tokenTipo do token
 */
tipoToken Tokenizer::getTipo() {
	return (this->tipo);
}

void Tokenizer::setConteudo(string str) {
	this->conteudoToken = str;
}
